$('#agenda').live("pagebeforeshow", function(event) {
	$('#alles_tab').click();
	createAgenda();
});

function filter(list) {
	list.empty();
	this.list = list;
	this.currentDate;
}

function createAgenda() {
	alles = new filter($('#agenda_list'));
	uurrooster = new filter($('#uurrooster_list'));
	deadline = new filter($('#deadlines_list'));
	meeting = new filter($('#meetings_list'));
	vrijeTijd = new filter($('#vrije_tijd_list'))
	
	filters = [alles, uurrooster, deadline, meeting, vrijeTijd];
	
	$.ajax( { 
		url: "/api/agenda",
		dataType:"json",
		success: function(data) {
			var afspraken = data.result;
			for(var i=0; i<afspraken.length; i++) {
				printLine(afspraken[i]);
			}
			refreshAll();
		},
		error: function() {
			console.log("** ERROR: Can not load json object **");
		}
	});
	
	function printLine(afspraak) {
		date = afspraak.datum.substring(0,10);
		time = afspraak.datum.substring(11,16);
		makeHeader(alles, date);
		switch(afspraak.type) {
		case "uurrooster":
			makeHeader(uurrooster, date);
			if(afspraak.omschrijving == "")
				omschr = "";
			else omschr = ': '+afspraak.omschrijving
			li = '<li><h3>'+afspraak.vakName+omschr+'</h3>' +
						'<p><strong>'+time+'-'+afspraak.einde.substring(11,16)+'</strong></p>' +
						'<p>'+afspraak.locatie+'</p></li>';
			uurrooster.list.append(li);
			break;
		case "deadline":
			makeHeader(deadline, date);
			li = '<li data-theme="e"><h3>'+afspraak.vakName+afspraak.omschrijving+'</h3>' +
					'<p><strong>'+time+'</strong></p></li>';
			deadline.list.append(li);
			break;
		case "afspraak":
			makeHeader(meeting, date);
			if(afspraak.omschrijving == "")
				omschr = "";
			else omschr = ': '+afspraak.omschrijving
			if(afspraak.hours == 0 && afspraak.minutes == 0)
				tijd = time;
			else if (afspraak.hours >= 24)
				tijd = date + ' ' + time + '-'+ afspraak.einde.substring(0,16);
			else tijd = time + '-' + afspraak.einde.substring(11,16);
			if(afspraak.locatie == "")
				loc = "";
			else loc = '<p>'+afspraak.locatie+'</p>';
			li = '<li><h3 style="white-space:normal">'+afspraak.met+omschr+'</h3>' +
					'<p><strong>'+tijd+'</strong></p>' +
					loc+'</li>';
			meeting.list.append(li);
			break;
		case "vrije_tijd":
			makeHeader(vrijeTijd, date);
			if(afspraak.hours == 0 && afspraak.minutes == 0)
				tijd = time;
			else if (afspraak.hours >= 24)
				tijd = date + ' ' + time + '-'+ afspraak.einde.substring(0,16);
			else tijd = time + '-' + afspraak.einde.substring(11,16);
			if(afspraak.locatie == "")
				loc = "";
			else loc = '<p>'+afspraak.locatie+'</p>';
			li = '<li><h3>'+afspraak.omschrijving+'</h3>' +
					'<p><strong>'+tijd+'</strong></p>' +
					loc+'</li>';
			vrijeTijd.list.append(li);
			break;
		}
		alles.list.append(li);
	}
	
	function makeHeader(filter, date) {
		if(!(date == filter.currentDate)) {
			filter.currentDate = date;
			li = $('<li data-role="list-divider" data-theme="a">' + filter.currentDate + '</li>');
			filter.list.append(li);
		}
	}
	
	function refreshAll() {
		for(i=0;i<filters.length;i++) {
			filters[i].list.listview("refresh");
		}
	}
}

function build(type) {
	switch(type) {
	case "uurrooster":
		a = { "date":date.value, "time":time.value, "duur":duur.value, "duur_min":duur_min.value,
				  "locatie":locatie.value, "omschrijving":omschrijving.value, "vakId":vakId.value};
		var a1 = JSON.stringify(a);
		return a1;
		break;
	case "deadline":
		a = { "date":date.value, "time":time.value, "omschrijving":omschrijving.value, "vakId":vakId.value};
		var a1 = JSON.stringify(a);
		return a1;
		break;
	case "afspraak":
		if(localStorage["contact"] == "null") {
			a = { "date":datum.value, "time":de_tijd.value, "duur":duur.value, "duur_min":duur_min.value,
					  "locatie":locatie.value, "omschrijving":omschrijving.value};
			var a1 = JSON.stringify(a);
			return a1;
		} else {
			persoon = JSON.parse(localStorage["contact"]);
			if(persoon.name == null)
				naam = persoon.userName;
			else naam = persoon.name;
			a = { "date":datum.value, "time":de_tijd.value, "duur":duur.value, "duur_min":duur_min.value,
					  "locatie":locatie.value, "omschrijving":omschrijving.value,"persoon":naam};
			var a1 = JSON.stringify(a);
			return a1;
		}
		break;
	}
}

$('#plan_afspraak').live("pagebeforeshow", function(event) {
	duur.value = "2"
	duur_min.value ="0"
	locatie.value ="";
	omschrijving.value ="";
	$('#plan_header').empty();
	if(localStorage["contact"] == "null") {
		$('#plan_header').append("Plan een vrij moment");
		
	} else {
		$('#plan_header').append("Plan afspraak");
	}
});

function submitAfspraak(type) {
	var l1 = build(type);
	console.log(l1);
		
	$.ajax( { 
		url: '/api/agenda/add/'+type,
		type: 'POST',	// Now we wait till we get response.
		data: l1,
		dataType:"json",
		contentType: 'application/json',
			success: function(data) {
				console.log("Gelukt!!");
			},
			error: function(data) {
				console.log("NIET Gelukt!!");
				console.log(data);
			}
			}
	);
	if(type == "afspraak")
		changePage();
}

function changePage() {
	if(localStorage["contact"] == "null") {
		$.mobile.changePage('#agenda');
	} else {
		$.mobile.changePage('#course');
	}
}